03月11, 2025
收藏本站

grafana sqlite3转mysql

引用自迁移Grafana 默认的 SQLite DB 数据改为使用 MySQL 方式

背景

grafana默认使用sqlite3存储数据,数据量上升需调整为MySQL,涉及将SQLite数据转MySQL。 一开始搜索文档为sqlite to mysql,各种折腾,比较有参考意义的,如:https://study-database.readthedocs.io/zh/latest/%E6%95%B0%E6%8D%AE%E5%BA%9304sqlite%E8%BD%ACmysql.html#sqlitesql ,总结了各种方案,遇到的坑,虽然最后也没采用。如果直接转换,涉及字段类型text可能需转换成varchar,或者text,因此表结构最好直接通过grafana来生成。

解决

迁移过程的参考步骤​

  • 首先需要暂停 Grafana 服务,导出默认的 SQLite 数据库文件,如 grafana.db ;
  • 可借助 Grafana 官方提供的工具 database-migrator 将数据库导出转化为支持 MySQL 协议的 SQL 文件;
  • 修改 Grafana 配置文件 grafana.ini 数据库相关配置参数 -e "GF_DATABASE_URL=mysql://$db_username:$db_passwd@$db_host:$db_port/$db_name" 使用 MySQL 数据库;
  • 重新启动 Grafana 让其在 MySQL 中设置数据库和表结构,初始化完再先关停下 Grafana ;
  • 导入前面使用工具从 SQLLite 原生默认数据库中导出的 sql 数据到 MySQL 对应的 DB 中;
  • 重新开启 Grafana 按理即可;

附:

  1. grafana官方文档:https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
  2. database-migrator:https://github.com/grafana/database-migrator

Comments